The present invention relates to processor-based systems and more specifically to overriding processor configuration settings of processor features.
A processor, such as a central processing unit (CPU) of a system typically includes a number of processor features such as caches, buffers, arrays, and the like. The processor may further include various processor features that are logic units, such as a branch prediction unit, and a prefetch unit, among others. One way in which the performance of a processor is improved is through the use of a multiple-stage pipeline architecture, in which various pipeline features may be used to more efficiently execute instructions.
For the processor to perform instructions efficiently, certain features within the processor may be defaulted to an enabled or disabled state during the manufacture of the processor. Typically, this default state cannot be modified under user-level control. That is, certain processor features are enabled or disabled by default when the processor is manufactured, with different default configurations possible for different target markets. In other words, current practice is ‘all or nothing’, irrespective of the application executing on the processor. Thus, certain processor features are enabled or disabled according to a predetermined policy, typically determined before the system is shipped to an end user.
For example, a hardware prefetcher of a processor is typically configured to a default condition during manufacture. This default condition is set when a system including the processor is booted, for example, during basic input/output system (BIOS) execution. Thus control of the hardware prefetcher is not visible to an end user and cannot be reconfigured by the end user.
A need thus exists to improve processor performance with regard to particular processor features.